Image filtering, which means eliminating useless noise in images, is an essential operation in image pre-processing. A filter is one of the key components for image processing and is quite important in image transformation, image enhancement and image restoration. Different filters may be selected to achieve different processing effects, for example, a low-pass filter may be applied for image smoothing, and a high-pass filter may be applied for edge extraction. With the development of information technology, the amount of data needing processing greatly increases, which demands higher image filtering processing speeds.
Filters may not only be directly used for image processing but also serve as regularization constraint conditions of some iterative computations. For example, computed tomography (CT) is widely applied to the medical imaging field and is a scanning method for obtaining a three-dimensional tomographic image via reconstructing the tomographic image of a tested object by use of the computer technology. In this scanning method, single-pinacoid rays penetrate the tested object, and according to the different ray absorption rates and the different ray transmission rates for the respective parts of the tested object, penetrating rays may be acquired by a computer and images may be reconstructed in three dimensions. Analytic reconstruction and iterative reconstruction are two basic methods for CT image reconstruction, wherein iterative reconstruction may greatly reduce the radiation dose under the premise of guaranteeing constant image quality and is beneficial to low-radiation-dose CT which is representative of the future development direction. In iterative reconstruction of low-radiation-dose CT images, filtering regularization computation is required for each time of iterative computation, and due to large amount of medical image data, the filtering speed directly influences the CT image reconstruction speed. Therefore, accelerating large-scale image filtering processing becomes very necessary.
On the other hand, the high-performance numeric operation capability of a multi-core processor represented by a graphics processing unit (GPU) has developed rapidly in recent years, CUDA (Computer Unified Device Architecture) formally released by NVIDIA in 2007 uses a C-like language (partial expansion on the basis of supporting current C language), so that the development is easier to master. The GPU is no longer limited to graphic processing and also can be applied to general numeric calculation, and is particularly suitable for operations with high degree of parallelism and large computation.
Therefore, in recent years, people have started to use parallel computing of the multi-core processor represented by the GPU to accelerate large-scale image filtering processing. In a traditional parallel processing method, the filtering computation of each pixel in the image serves as a basic computing element to be given to each thread to accomplish. However, this not only causes lots of repeated computations and thus unnecessarily increases for the computing amount and the computing time but also results in lots of repeated accesses of a global memory and thus unnecessarily increases for the number of times of the access and the access time. So, the technical problem of low image filtering speed exists in the prior art when parallel computing is utilized to realize image filtering processing.